/**
 * Event package.
 */
package fr.umlv.m2.ig.model.event;

/**
 * This interface defines the listener for changes about trains.
 * 
 * @author Gambouele Bertrand.
 * @author Viravout Alexandre.
 */
public interface TrainListener {

	/**
	 * Called if at least one train move.
	 * 
	 * @param event the associated event.
	 */
	public void trainsMoved(TrainEvent event);

	/**
	 * Called if a train is added to the model.
	 * 
	 * @param event the associated event.
	 */
	public void trainAdded(TrainEvent event);

	/**
	 * Called if a train is removed from the model.
	 * 
	 * @param event the associated event.
	 */
	public void trainRemoved(TrainEvent event);
	
	/**
	 * Called when trains list in the model is reseted.
	 * 
	 * @param event the associated event.
	 */
	public void trainsListReseted(TrainEvent event);
}
